home *** CD-ROM | disk | FTP | other *** search
- class CAnimateThread implements Runnable {
- private int m_nAnimObjectCount = 0;
- private long m_lLoopStartTime = 0L;
- private Thread m_AnimThread = null;
- private CDrawObj[] m_AnimObject;
-
- public void RemoveAllAnimObjects() {
- this.m_nAnimObjectCount = 0;
- }
-
- public void AddAnimObject(CDrawObj var1) {
- if (this.m_nAnimObjectCount <= 0) {
- this.m_AnimObject = new CDrawObj[1];
- this.m_AnimObject[0] = var1;
- this.m_nAnimObjectCount = 1;
- this.start();
- } else {
- CDrawObj[] var2 = new CDrawObj[this.m_nAnimObjectCount];
- System.arraycopy(this.m_AnimObject, 0, var2, 0, this.m_nAnimObjectCount);
- this.m_AnimObject = new CDrawObj[this.m_nAnimObjectCount + 1];
- System.arraycopy(var2, 0, this.m_AnimObject, 0, this.m_nAnimObjectCount);
- this.m_AnimObject[this.m_nAnimObjectCount] = var1;
- ++this.m_nAnimObjectCount;
- }
- }
-
- public void RemoveAnimObject(CDrawObj var1) {
- for(int var2 = 0; var2 < this.m_nAnimObjectCount; ++var2) {
- if (this.m_AnimObject[var2] != null && (this.m_AnimObject[var2] == var1 || this.m_AnimObject[var2].GetIconObject().GetMoveObject() == var1)) {
- this.m_AnimObject[var2] = null;
- }
- }
-
- }
-
- private void RemoveAnimObject(int var1) {
- if (var1 < this.m_nAnimObjectCount && (this.m_nAnimObjectCount += -1) > 0) {
- CDrawObj[] var2 = new CDrawObj[this.m_nAnimObjectCount];
- System.arraycopy(this.m_AnimObject, 0, var2, 0, var1);
- System.arraycopy(this.m_AnimObject, var1 + 1, var2, var1, this.m_nAnimObjectCount - var1);
- this.m_AnimObject = new CDrawObj[this.m_nAnimObjectCount];
- System.arraycopy(var2, 0, this.m_AnimObject, 0, this.m_nAnimObjectCount);
- }
-
- }
-
- private void start() {
- this.m_AnimThread = new Thread(this);
- this.m_AnimThread.start();
- }
-
- public void run() {
- boolean var1 = false;
-
- for(long var2 = -1L; this.m_AnimThread != null && this.m_nAnimObjectCount > 0; var2 = System.currentTimeMillis() - this.m_lLoopStartTime) {
- this.m_lLoopStartTime = System.currentTimeMillis();
-
- for(int var4 = 0; var4 < this.m_nAnimObjectCount; ++var4) {
- if (this.m_AnimObject[var4] == null) {
- this.RemoveAnimObject(var4);
- --var4;
- } else if (!this.m_AnimObject[var4].m_pIconObject.DoAnimation(this.m_AnimObject[var4].GetDrawRect(), var2)) {
- this.RemoveAnimObject(var4);
- --var4;
- }
- }
- }
-
- }
-
- public long GetLoopStartTime() {
- return this.m_lLoopStartTime;
- }
- }
-